package com.hibikiluler.javalearning.service;

import com.hibikiluler.javalearning.entity.SysUser;
import com.hibikiluler.javalearning.util.Queryinfo;
import com.hibikiluler.javalearning.util.Result;
import com.hibikiluler.javalearning.vo.Loginvo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;

/**
 * 用户操作逻辑的接口
 */


public interface SysUserService {
    /**
     * 登录接口
     * @param loginvo  登录参数 账号和密码
     * @return 返回token,用token获取资源
     */
    Result login(Loginvo loginvo);

    /**
     * 登录接口
     * @param openid 登录参数： 账号和密码
     * @return 返回token，用token去获取资源
     */
    Result miniLogin(String openid, String sessionKey);

    //根据用户名获取用户信息
    SysUser findByUsername(String userName);

    //根据openId来查找用户名
    SysUser findByopenId(String openid);

    /**
     * 分页查询
     * @param queryInfo
     * @return
     */
    Result findPage(Queryinfo queryInfo);

    /**
     * 添加用户信息
     * @param user
     * @return
     */
    Result insert(SysUser user);

    /**
     * 修改用户信息
     * @param user
     * @return
     */
    Result update(SysUser user);

    /**
     * 删除用户信息
     * @param id
     * @return
     */
    Result delete(Long id);

    /**
     * 根据邮箱修改密码
     * @param email
     * @param password
     */
    void updatePwdByMail(String email, String password);

    /**
     * 根据openid更新用户信息
     * @param user
     * @return
     */
    Result updateByopenId(SysUser user);
}
